CREATE TABLE [dbo].[TagRelationship]
(
[TagRelationshipKey] [uniqueidentifier] NOT NULL,
[SubjectTagKey] [uniqueidentifier] NOT NULL,
[TargetTagKey] [uniqueidentifier] NOT NULL,
[TagRelationshipTypeCode] [int] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TagRelationship] ADD CONSTRAINT [PK_TagRelationship] PRIMARY KEY CLUSTERED ([TagRelationshipKey]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TagRelationship] ADD CONSTRAINT [AK_TagRelationship] UNIQUE NONCLUSTERED ([SubjectTagKey], [TargetTagKey], [TagRelationshipTypeCode]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_TagRelationship_TargetTagKey] ON [dbo].[TagRelationship] ([TargetTagKey]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TagRelationship] ADD CONSTRAINT [FK_TagRelationship_Tag_Subject] FOREIGN KEY ([SubjectTagKey]) REFERENCES [dbo].[Tag] ([TagKey])
GO
ALTER TABLE [dbo].[TagRelationship] ADD CONSTRAINT [FK_TagRelationship_Tag_Target] FOREIGN KEY ([TargetTagKey]) REFERENCES [dbo].[Tag] ([TagKey])
GO
ALTER TABLE [dbo].[TagRelationship] ADD CONSTRAINT [FK_TagRelationship_TagRelationshipTypeRef] FOREIGN KEY ([TagRelationshipTypeCode]) REFERENCES [dbo].[TagRelationshipTypeRef] ([TagRelationshipTypeCode])
GO